Data encryption systems often use secret keys (or private keys) to securely exchange information. The secret keys are used to convert original information (plaintext) to encrypted information (cipher text), and vice versa. By encrypting information using a secret key such that only someone else with knowledge of the secret key will be able to decipher it, the possibility that eavesdroppers might learn the contents of encrypted messages is significantly reduced.
Conventional cryptography depends on the computational complexity of mathematical algorithms to generate the secret keys. Encrypted information is broken up into cipher blocks, for example, of a given length, where each block is encrypted or decrypted using a secret key of the same given length. As such, conventional cryptography key generation is usually application specific and implemented to generate secret keys of a given length.